public class SellTicket implements Runnable {
    private static int ticketCount = 100;
//    private Object obj = new Object();


    @Override
    public void run() {
        try {
            while (ticketCount > 0) {
                sellTicket();
                Thread.sleep(300);
            }
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    private synchronized static void sellTicket() { //添加static 锁定的是整个类，所有访问这个类的实例都会被阻塞
//        synchronized (this) { //线程锁，在一个线程在使用的时候，其他线程无法使用，当前线程结束后，其他线程可以使用，同步代码块
            if (ticketCount > 0) {
                ticketCount--;
                System.out.println(Thread.currentThread().getName() + "  卖票，还剩  " + ticketCount + "  张");//哪一个线程在干活
            } else {
                System.out.println("票卖完了");
            }
//        }
    }
}
